package br.ufrpe.bsi.pvs.xml.transformer;

import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;

import br.ufrpe.bsi.pvs.model.funcionario.Funcionario;
import br.ufrpe.bsi.pvs.xml.XMLUtil;
import br.ufrpe.bsi.pvs.xml.request.AddRequestProcessor;
import br.ufrpe.bsi.pvs.xml.request.ListRequestProcessor;
import br.ufrpe.bsi.pvs.xml.request.LoginRequestProcessor;
import br.ufrpe.bsi.pvs.xml.response.ListedResponseProcess;

public class FuncionarioXML {

    public static Document parseAddRequest(Funcionario f) {
        Document docF = AddRequestProcessor.getAddRequestDocument("funcionario");
        Element classe = docF.getRootElement()
        		.getChild(XMLUtil.ELEM_REQUEST)
        			.getChild(XMLUtil.ELEM_CLASS);

        Element nome = new Element("nome");
        nome.addContent(f.getNome());
        Element login = new Element("login");
        login.addContent(f.getLogin());
        Element senha = new Element("senha");
        senha.addContent(f.getSenha());

        classe.addContent(nome);
        classe.addContent(login);
        classe.addContent(senha);

        return docF;
    }
    
    public static Document parseLoginRequest(Funcionario f) {
        Document docF = LoginRequestProcessor.getLoginRequestDocument("funcionario");
        Element classe = docF.getRootElement()
        		.getChild(XMLUtil.ELEM_REQUEST)
        			.getChild(XMLUtil.ELEM_CLASS);

        Element login = new Element("login");
        login.addContent(f.getLogin());
        Element senha = new Element("senha");
        senha.addContent(f.getSenha());

        classe.addContent(login);
        classe.addContent(senha);

        return docF;
    }
    
    public static Document parseListRequest() {
        Document docF = ListRequestProcessor.getListRequestDocument("funcionario");
        Element classe = docF.getRootElement()
        		.getChild(XMLUtil.ELEM_REQUEST)
        			.getChild(XMLUtil.ELEM_CLASS);

        return docF;
    }

	public static Document createResponseDocument(List<Funcionario> listaF) {
		Document doc = ListedResponseProcess.getListedResponseDocument("funcionario");
		Element response = doc.getRootElement().getChild(XMLUtil.ELEM_RESPONSE);

		for (Funcionario f : listaF) {
			Element roupaElem = new Element("roupa");

			Element id = new Element("ID");
			id.addContent("" + f.getId());

			Element login = new Element("login");
			login.addContent("" + f.getLogin());

			Element nome = new Element("nome");
			nome.addContent("" + f.getNome());

			roupaElem.addContent(id);
			roupaElem.addContent(login);
			roupaElem.addContent(nome);

			response.addContent(roupaElem);
		}

		return doc;
	}


}
